﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
using YaAppoint.Response;

namespace YaAppoint.Appointments.HisAppoint
{
    /// <summary>
    /// His 预约服务
    /// </summary>
    [RemoteService(isEnabled:false)]
    public interface IHisAppointAppService:IApplicationService
    {
        /// <summary>
        /// 获取已预约申请项目
        /// </summary>
        Task<BackJson> GetAppointedApplyItems(string applyNumbers);


        /// <summary>
        /// 获取未预约申请项目
        /// </summary>
        Task<BackJson> GetNoAppointApplyItems(string applyNumbers);


        /// <summary>
        /// 获取患者信息
        /// </summary>
        Task<BackJson> GetPatientInfo(string applyNumbers);

        /// <summary>
        /// 加载页面初始化信息
        /// </summary>
        Task<BackJson> GetInitInfo(string applyNumbers);

        /// <summary>
        /// 获取推荐时间段
        /// </summary>
        Task<BackJson> GetSuggestInterval(List<Guid> applyItemIds,DateTime date);

        /// <summary>
        /// 提交预约
        /// </summary>
        Task<BackJson> AppointSubmit(List<ApplyItemDto> applyItems,bool confirmed);

        /// <summary>
        /// 修改预约
        /// </summary>
        Task<BackJson> EditAppoints(List<ApplyItemDto> applyItems,bool confirmed);

        /// <summary>
        /// 取消预约
        /// </summary>
        Task<BackJson> Cancel(List<Guid> applyItemIds,bool confirmed);

        // 确认方案
        Task<BackJson> ConfirmSolution(string applyNumbers);
    }
}
